/**
 * Description:
 * Class Name:AnnoymousDiamond
 * Date:2022/3/19 15:24
 *
 * @author LTisme
 * @version JAVA17
 */
package 疯狂Java讲义.第9章_泛型._9_1_泛型入门._9_1_3_Java9增强的菱形语法;

interface Foo<T>{
    void test(T t);
}

public class AnnoymousDiamond {
    public static void main(String[] args) {
        // 指定Foo类中泛型为String
        Foo<String> f = new Foo<String>() {
            @Override
            public void test(String s) {
                System.out.println("test 方法的t参数为：" + s);
            }
        };

        // 使用泛型通配符，此时相当于通配符的上限为Object
        Foo<?> foo = new Foo<Object>() {
            @Override
            public void test(Object o) {
                System.out.println("test 方法的t参数为：" + o.toString());
            }
        };

        // 使用泛型通配符，通配符的上限为java.lang.Number
        Foo<? extends Number> fn = new Foo<Number>() {
            @Override
            public void test(Number number) {
                System.out.println("test 方法的t参数为：" + number);
            }
        };
    }
}
